﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.ClasesDominio;
using vudu.Presentacion.Contrato.VU_03_Gestionar_Pensum_por_Escuela;
using vudu.Logica.Fachada;

namespace vudu.Presentacion.Presentador.VU_03_Gestionar_Pensum_por_Escuela
{
    public class PresentadorCrearPensumEtapaI
    {
        public IContratoCrearPensumEtapaI _vista;
        private EnlaceLogico _fachada;
        private List<Materia> _lista;

        public PresentadorCrearPensumEtapaI(IContratoCrearPensumEtapaI vista, EnlaceLogico fachada)
        {
            _vista = vista;
            _fachada = fachada;
            _lista = new List<Materia>();
        }

        public void Paginacion(GridViewPageEventArgs e)
        {
            this._vista.TablaMaterias.PageIndex = e.NewPageIndex;
            this.CargarTabla();
        }

        public void CargarListaEscuela()
        {
                
                List<Escuela> escuelas = new List<Escuela>();
                escuelas = _fachada.ConsultarEscuelasVecinas(1);
                _vista.ListaEscuelas.DataSource = escuelas;
                _vista.ListaEscuelas.DataTextField = "NombreEscuela";
                _vista.ListaEscuelas.DataValueField = "IdEscuela";
                _vista.ListaEscuelas.DataBind();

            /*
                _lista = new List<Materia>();
                Materia m1 = new Materia(123, "Calculo I", 5, 3, "", "Pasivo");
                Materia m2 = new Materia(456, "Calculo II", 5, 3, "", "Activo");
                Materia m3 = new Materia(789, "Calculo III", 5, 3, "", "Activo");
                Materia m4 = new Materia(455, "Algoritmos I", 5, 3, "", "Pasivo");
                Materia m5 = new Materia(323, "Algoritmos II", 5, 3, "", "Activo");
                Materia m6 = new Materia(152, "Algoritmos III", 5, 3, "", "Activo");

                Materia m7 = new Materia(144, "Base de Datos I", 5, 3, "", "Pasivo");
                Materia m8 = new Materia(154, "Base de Datos II", 5, 3, "", "Activo");
                Materia m9 = new Materia(742, "Base de Datos III", 5, 3, "", "Activo");

                _lista.Add(m1);
                _lista.Add(m2);
                _lista.Add(m3);
                _lista.Add(m4);
                _lista.Add(m5);
                _lista.Add(m6);
                _lista.Add(m7);
                _lista.Add(m8);
                _lista.Add(m9);
                CargarTabla();
           */
        }

        public void CargarMateriasDeEscuela()
        {
            try
            {
                int idEscuelaSelec = int.Parse(_vista.ListaEscuelas.SelectedValue);
                

            }
            catch (Exception)
            { 
            }
        }

        public void CargarTabla()
        {
            //Generate rows and cells.
            DataTable table = new DataTable();
            table.Columns.Add("Nombre", typeof(string));
            table.Columns.Add("Codigo", typeof(string));
            table.Columns.Add("Estatus", typeof(string));
            foreach (Materia materia in _lista)
            {
                String nombreMateria = materia.Nombre;
                if (nombreMateria != null)
                {
                    table.Rows.Add(materia.Nombre, materia.Codigo, materia.Estatus);
                }
            }
            this._vista.TablaMaterias.DataSource = table;
            this._vista.TablaMaterias.DataBind();
        }
        public void ocurreError(String info)
        {
            //_vista.Error.Text = "Operacion Fallida: " + info;
            _vista.Error.ForeColor = System.Drawing.Color.Red;
            _vista.Error.Visible = true;
        }

        public void ocurreExito()
        {
            //_vista.Error.Text = "La materia se agrego con exito";
            _vista.Error.CssClass = "transaccionExitosa";
            _vista.Error.ForeColor = System.Drawing.Color.Green;
            _vista.Error.Visible = true;
        }

        /// <summary>
        /// Este metodo me permitira armar armar la lista de materias para el pensum
        /// el objeto pensum, y el total de semestres q este tendra
        /// para poder redireccionar a la Etapa II
        /// </summary>
        public void Continuar()
        {
            
        }
    }
}